package com.ShangGuiGu.LinkedList;

import lombok.*;

/**
 * @auther zsj
 * @Date 2021/12/15
 * 环形链表的一个应用场景
 * 环形链表就是尾部节点的next域重新指向头节点，这样所有节点就围成了一个圈
 *
 *
 * joseph问题
 * 是1-n个人坐成一圈
 * 然后指定编号为k的人开始报数，每数到m的时候，当前节点的数据出列，然后重新开始报数
 * 获取最终出队编号的序列
 **/
public class JosephQuestion {
    public static void main(String[] args) {

    }
}

class SingleRingLinkedList{
    //头节点
    private Boy first = new Boy();

    //添加节点，构成环形链表
    public void addBoy(int nums){
        //添加的节点数不能小于1个
        if (nums < 1  ){
            System.out.println("添加的节点数量不能小于1个");
            return;
        }
        //使用for循环创捷环形链表
        for (int i = 1; i < nums; i++) {

        }


    }
}

//节点信息
@Data
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
class Boy{
    private int no ;//编号
    private Boy next;//指向下一个节点
    public Boy(int no) {
        this.no = no;
    }

    @Override
    public String toString() {
        return "Boy{" +
                "no=" + no +
                ", next=" + next +
                '}';
    }
}


